/**
 * 路由守卫，用于检查用户是否已登录
 * @param {import('vue-router').Router} router - Vue Router 实例
 */
export function setupAuthGuard(router) {
  // 需要登录才能访问的路由路径
  const authRoutes = [
    // '/mine',
    '/mine/settings'
  ]

  // 不需要登录也能访问的路由路径
  const publicRoutes = ['/change-password', '/login', '/register', '/404']

  router.beforeEach((to, from, next) => {
    // 获取存储的令牌
    const token = secureStorage.get('token')

    // 检查是否是需要登录的路由
    const requiresAuth = authRoutes.some(path => to.path.startsWith(path))

    // 检查是否是公开路由
    const isPublicRoute = publicRoutes.some(path => to.path === path)

    if (requiresAuth && !token) {
      // 需要登录但未登录，重定向到登录页
      next({
        path: '/login',
        query: { redirect: to.fullPath } // 保存原始目标路径，登录后可以重定向回去
      })
    } else if (token && (to.path === '/login' || to.path === '/register')) {
      // 已登录但尝试访问登录或注册页，重定向到个人中心
      next({ path: '/mine' })
    } else {
      // 其他情况正常通过
      next()
    }
  })
}
